# 导包
import unittest
from api.empApi import EmpApi
from api.loginApi import LoginApi


# 创建测试用例的类

class TestEmpApi(unittest.TestCase):
    def setUp(self) -> None:
        self.login_api = LoginApi()
        self.emp_api = EmpApi()

    # 实现员工场景的增，删，改，查测试用例
    def test01_emp_mang(self):
        # 调用封装获取token的方法，获取token
        login_json_dict = {"mobile": "13800000001", "password": "123456"}
        token = self.login_api.get_token(login_json_dict)
        print(token)

        # 调用封装员工增加的方法
        add_emp_json_dict = {"username": "xiaom", "mobile": "13811111022", "workNumber": "6666"}
        add_emp_res = self.emp_api.add_emp(token, add_emp_json_dict)
        add_emp_res_json = add_emp_res.json()
        print(add_emp_res_json)
        # 断言
        self.assertEqual(200, add_emp_res.status_code)
        self.assertEqual(True, add_emp_res_json.get('success'))
        self.assertEqual(10000, add_emp_res_json.get('code'))
        self.assertIn("操作成功", add_emp_res_json.get('message'))

        # 获取新增员工id
        emp_id = add_emp_res_json.get("data").get("id")
        print(emp_id)

        # 调用封装查看员工的方法
        query_emp_res = self.emp_api.query_emp(emp_id, token)
        query_emp_res_json = query_emp_res.json()
        print(query_emp_res_json)
        # 断言
        self.assertEqual(200, query_emp_res.status_code)
        self.assertEqual(True, query_emp_res_json.get('success'))
        self.assertEqual(10000, query_emp_res_json.get('code'))
        self.assertIn("操作成功", query_emp_res_json.get('message'))

        # 调用封装更改员工的方法
        update_json_dict = {"username": "xiaoming8"}
        update_emp_res = self.emp_api.update_emp(emp_id, token, update_json_dict)
        update_emp_res_json = update_emp_res.json()
        print(update_emp_res_json)
        # 断言
        self.assertEqual(200, update_emp_res.status_code)
        self.assertEqual(True, update_emp_res_json.get('success'))
        self.assertEqual(10000, update_emp_res_json.get('code'))
        self.assertIn("操作成功", update_emp_res_json.get('message'))

        # 调用封装删除员工的方法
        del_emp_res = self.emp_api.del_emp(emp_id, token)
        del_emp_res_json = del_emp_res.json()
        print(del_emp_res_json)
        # 断言
        self.assertEqual(200, del_emp_res.status_code)
        self.assertEqual(True, del_emp_res_json.get('success'))
        self.assertEqual(10000, del_emp_res_json.get('code'))
        self.assertIn("操作成功", del_emp_res_json.get('message'))



